home *** CD-ROM | disk | FTP | other *** search
/ ftp.cs.arizona.edu / ftp.cs.arizona.edu.tar / ftp.cs.arizona.edu / icon / newsgrp / group03a.txt / 000046_icon-group-sender_Wed Mar 26 09:28:14 2003.msg < prev    next >
Internet Message Format  |  2003-12-22  |  4KB

  1. Return-Path: <icon-group-sender>
  2. Received: (from root@localhost)
  3.     by baskerville.CS.Arizona.EDU (8.11.1/8.11.1) id h2QGSDg15513
  4.     for icon-group-addresses; Wed, 26 Mar 2003 09:28:13 -0700 (MST)
  5. Message-Id: <200303261628.h2QGSDg15513@baskerville.CS.Arizona.EDU>
  6. X-Newsgroups: comp.lang.icon
  7. Subject: Icon-like programming language - 2 attachments
  8. From: Raja Mukherji <rapl_lang@yahoo.co.uk>
  9. User-Agent: Xnews/5.04.25
  10. X-NNTP-Posting-Host: 10155phys232.ucd.ie
  11. Date: 26 Mar 2003 12:48:26 GMT
  12. To: icon-group@cs.arizona.edu
  13. Errors-To: icon-group-errors@cs.arizona.edu
  14. Status: RO
  15.  
  16. I don't know if anyone is interested but after using Icon for little while 
  17. (and yes Icon is great), I decided to try and write a programming language 
  18. with similar features to Icon with a number of differences. I started just 
  19. over 3 years ago, and although not finished yet, I think I've completed 
  20. enough to finally make a posting about it. So here it is.
  21.  
  22. My language is called Rapl, and like Icon has generators, backtracking, 
  23. built-in lists, tables and strings (although not all features of these have 
  24. been implemented yet). It also compiles to bytecode (my compiler is 
  25. currently written in Icon), which is then interpreted by my virtual 
  26. machine, currently written in assembly code for mmx-processors and higher. 
  27. Currently it only runs on Windows but porting to Linux should be fairly 
  28. easy since only the system calls have to be translated.
  29.  
  30. However, Rapl also supports OOP with classes and objects, has runtime 
  31. overloaded functions and operators, support for basic functional 
  32. programming, redefinition of internal operators at runtime, dynamic loading 
  33. of modules (both bytecode and native), and I think the internal 
  34. architecture makes it much easier to extend than Icon.
  35.  
  36. Anyway, here are two sample files to look at, if anybody is interested in 
  37. testing my current implementation, commenting on any language features, or 
  38. wants to know how any features were implemented, talk to me...
  39.  
  40. begin 644 list.rpl
  41. M;6]D(&QI<W0[#0H-"FEM<"!S>7,@=7-E('=R:71E.PT*#0ID968@;&ES=&YO
  42. M9&4@:7,@='EP92A686QU92P@4')E=BP@3F5X="D@*`T*"6YE=R!I<R!F=6XH
  43. M5F%L=64I("@-"@D)4V5L9BY686QU92`\+2!686QU93L-"@D)4V5L9BY0<F5V
  44. M(#PM(%-E;&8N3F5X="`\+2!N=6QL.PT*"0E396QF.PT*"2D[#0HI.PT*#0ID
  45. M968@;&ES="$@:7,@='EP92A(96%D+"!486EL+"!,96YG=&@I("@-"@EN97<@
  46. M:7,@9G5N*"D@*`T*"0E396QF+DAE860@/"T@4V5L9BY486EL(#PM(&YU;&P[
  47. M#0H)"5-E;&8N3&5N9W1H(#PM(#`[#0H)"5-E;&8[#0H)*3L-"@EP=70@:7,@
  48. M9G5N*%9A;'5E*2`H#0H)"79A<B!.;V1E(#PM(&QI<W1N;V1E*%9A;'5E*3L-
  49. M"@D):68@+U-E;&8N2&5A9"`\+2!396QF+E1A:6P@/"T@3F]D92!E;'-E("@-
  50. M"@D)"5-E;&8N5&%I;"Y.97AT(#PM($YO9&4[#0H)"0E.;V1E+E!R978@/"T@
  51. M4V5L9BY486EL.PT*"0D)4V5L9BY486EL(#PM($YO9&4[#0H)"2D[#0H)"5-E
  52. M;&8N3&5N9W1H(#PM(%-E;&8N3&5N9W1H("L@,3L-"@D)4V5L9CL-"@DI.PT*
  53. M"7!U<V@@:7,@9G5N*%9A;'5E*2`H#0H)"79A<B!.;V1E(#PM(&QI<W1N;V1E
  54. M*%9A;'5E*3L-"@D):68@+U-E;&8N2&5A9"`\+2!396QF+E1A:6P@/"T@3F]D
  55. M92!E;'-E("@-"@D)"5-E;&8N2&5A9"Y0<F5V(#PM($YO9&4[#0H)"0E.;V1E
  56. M+DYE>'0@/"T@4V5L9BY(96%D.PT*"0D)4V5L9BY(96%D(#PM($YO9&4[#0H)
  57. M"2D[#0H)"5-E;&8N3&5N9W1H(#PM(%-E;&8N3&5N9W1H("L@,3L-"@D)4V5L
  58. M9CL-"@DI.PT*"7!O<"!I<R!F=6XH*2`H#0H)"79A<B!.;V1E(#PM(%Q396QF
  59. M+DAE860[#0H)"2A<*%-E;&8N2&5A9"`\+2!.;V1E+DYE>'0I*2Y0<F5V('P@
  60. M4V5L9BY486EL(#PM(&YU;&P[#0H)"5-E;&8N3&5N9W1H(#PM(%-E;&8N3&5N
  61. M9W1H("T@,3L-"@D)3F]D92Y686QU93L-"@DI.PT*"7!U;&P@:7,@9G5N*"D@
  62. M*`T*"0EV87(@3F]D92`\+2!<4V5L9BY486EL.PT*"0DH7"A396QF+E1A:6P@
  63. M/"T@3F]D92Y0<F5V*2DN3F5X="!\(%-E;&8N2&5A9"`\+2!N=6QL.PT*"0E3
  64. M96QF+DQE;F=T:"`\+2!396QF+DQE;F=T:"`M(#$[#0H)"4YO9&4N5F%L=64[
  65. M#0H)*3L-"@ES:&]W(&ES(&9U;B@I("@-"@D)=W)I=&4H(ELB*3L-"@D)=F%R
  66. M($YO9&4[#0H)"7=R:71E*"A.;V1E(#PM(%Q396QF+DAE860I+E9A;'5E*2`F
  67. M(')E<"!W<FET92@B+"`B+"`H3F]D92`\+2!<3F]D92Y.97AT*2Y686QU92D@
  68. B?"!L96%V93L-"@D)=W)I=&4H(EU<;B(I.PT*"2D[#0HI.P``
  69. `
  70. end
  71.  
  72.  
  73. begin 644 test.rpl
  74. M;6]D('1E<W0[#0H-"FEM<"!S>7,@=7-E('=R:71E.PT*:6UP(&QI<W0@87,@
  75. M;#L-"@T*9&5F('-T87)T(2!I<R`H#0H)=F%R($P@/"T@;"YL:7-T*"D[#0H)
  76. F979E<GD@3"YP=7-H*#$@=&\@,3`I.PT*"4PN<VAO=R@I.PT**3L`
  77. `
  78. end
  79.  
  80.